///*******************************************************************************
// * Copyright (c) 2000, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// *******************************************************************************/
//
//package org.eclipse.ui.tests.keys;
//
//import java.io.BufferedOutputStream;
//import java.io.File;
//import java.io.FileNotFoundException;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.util.Iterator;
//import java.util.List;
//import java.util.Properties;
//
//import org.eclipse.core.runtime.CoreException;
//import org.eclipse.core.runtime.Path;
//import org.eclipse.core.runtime.Platform;
//import org.eclipse.core.runtime.PluginVersionIdentifier;
//import org.eclipse.core.runtime.Preferences;
//import org.eclipse.ui.commands.ICommandManager;
//import org.eclipse.ui.internal.IWorkbenchConstants;
//import org.eclipse.ui.keys.KeySequence;
//import org.eclipse.ui.tests.harness.util.UITestCase;
//
///**
// * Tests Bug 36420
// * 
// * @since 3.0
// */
//public class Bug36420Test extends UITestCase {
//
//    /**
//     * Constructor for Bug36420Test.
//     * 
//     * @param name
//     *            The name of the test
//     */
//    public Bug36420Test(String name) {
//        super(name);
//    }
//
//    /**
//     * Tests that importing key preferences actually has an effect.
//     * 
//     * @throws CoreException
//     *             If the preferences can't be imported.
//     * @throws FileNotFoundException
//     *             If the temporary file is removed after it is created, but
//     *             before it is opened. (Wow)
//     * @throws IOException
//     *             If something fails during output of the preferences file.
//     */
//    public void testImportKeyPreferences() throws CoreException,
//            FileNotFoundException, IOException {
//        String commandId = "org.eclipse.ui.window.nextView"; //$NON-NLS-1$
//        String keySequenceText = "F S C K"; //$NON-NLS-1$
//
//        /*
//         * DO NOT USE PreferenceMutator for this section. This test case must
//         * use these exact steps, while PreferenceMutator might use something
//         * else in the future.
//         */
//        // Set up the preferences.
//        Properties preferences = new Properties();
//        String key = "org.eclipse.ui.workbench/org.eclipse.ui.commands"; //$NON-NLS-1$
//        String value = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<org.eclipse.ui.commands><activeKeyConfiguration keyConfigurationId=\"" + IWorkbenchConstants.DEFAULT_ACCELERATOR_CONFIGURATION_ID + "\"></activeKeyConfiguration><keyBinding	keyConfigurationId=\"org.eclipse.ui.defaultAcceleratorConfiguration\" commandId=\"" + commandId + "\" keySequence=\"" + keySequenceText + "\"/></org.eclipse.ui.commands>"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
//        preferences.put(key, value);
//        
//        // This is the first pass way to "walk" through the list
//        // of bundles
//        String[] pluginIds = Platform.getExtensionRegistry().getNamespaces();
//		for (int i = 0; i < pluginIds.length; i++) {
//			preferences.put(pluginIds[i], new PluginVersionIdentifier(
//					(String) Platform.getBundle(pluginIds[i]).getHeaders().get(
//							org.osgi.framework.Constants.BUNDLE_VERSION)));
//		}
//
//        // Export the preferences.
//        File file = File.createTempFile("preferences", ".txt"); //$NON-NLS-1$//$NON-NLS-2$
//        file.deleteOnExit();
//        BufferedOutputStream bos = new BufferedOutputStream(
//                new FileOutputStream(file));
//        preferences.store(bos, null);
//        bos.close();
//
//        // Attempt to import the key binding.
//        Preferences.importPreferences(new Path(file.getAbsolutePath()));
//        /*
//         * END SECTION
//         */
//
//        // Check to see that the key binding for the given command matches.
//        ICommandManager manager = fWorkbench.getCommandSupport()
//                .getCommandManager();
//        List keyBindings = manager.getCommand(commandId)
//                .getKeySequenceBindings();
//        Iterator keyBindingItr = keyBindings.iterator();
//        boolean found = false;
//        while (keyBindingItr.hasNext()) {
//            KeySequence keyBinding = (KeySequence) keyBindingItr.next();
//            String currentText = keyBinding.toString();
//            if (keySequenceText.equals(currentText)) {
//                found = true;
//            }
//        }
//
//        assertTrue("Key binding not imported.", found); //$NON-NLS-1$
//    }
//}
